﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Boggle.Dictionaries
{
    /// <summary>
    /// A dictionary which thinks everything is a word.
    /// Does not support definitions of words.
    /// </summary>
    public class OptimisticDictionary : IBoggleDictionary
    {
        /// <summary>
        /// Gets the name of this dictionary.
        /// </summary>
        public String Name { get { return "Optimistic Dictionary"; } }

        /// <summary>
        /// Gets this dictionary's description.
        /// </summary>
        public String Description
        {
            get { return "The dictionary that thinks everything's a word!"; }
        }

        /// <summary>
        /// Gets whether or not this dictionary supports definitions. (It doesn't).
        /// </summary>
        public Boolean IsDefineSupported
        {
            get { return false; }
        }

        /// <summary>
        /// Gets whether or not the specified string is a valid word. (It is).
        /// </summary>
        /// <param name="word"></param>
        /// <returns></returns>
        public bool IsWord(String word)
        {
            return true;
        }

        /// <summary>
        /// Defines the specified word.
        /// </summary>
        /// <param name="word"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException">Always thrown from this method.
        /// This dictionary does not support definitions.</exception>
        public List<String> Define(String word)
        {
            throw new NotImplementedException();
        }
    }
}
